package com.oracle.containers.list;

import java.util.ArrayList;

/**
 * @author zhouyanxiang
 * @create 2020-08-2020/8/16-19:26
 * ArrayList 是使用最广泛的List实现类，其内部数据结构基于数组实现，提供了List的增add、删除remove、访问get功能
 *
 * ArrayList的缺点是对元素必须连续存储，当需要在ArrayList的中间位置插入或者删除元素的时候，
 * 需要将待插入或者删除的结点之后的所有元素进行移动，其修改代价比较高。
 * 因此，ArrayList不合适随机插入和删除的操作，更适合随机查找和遍历的操作。
 *
 * ArrayList不需要在定义的时候指定数组的长度，在数组长度不能满足存储要求的时候，
 * ArrayList会创建一个更大的数组并将数组中已有的数据复制到新的数组当中
 */
public class ArrayListReview {

    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();

        arrayList.add("s1");
        arrayList.get(0);
        System.out.println(arrayList.get(0));

        arrayList.remove(0);
        System.out.println(arrayList);

        arrayList.add("Tom");
        arrayList.add("Tom");
        System.out.println(arrayList);

        arrayList.ensureCapacity(20);
        System.out.println(arrayList.size());

    }

}
